package j09;

import java.util.Scanner;

public class J09_Exception {

	public static void main(String[] args) 
		throws Exception {
		//예외 처리 - 일종의 오류
		//프로그램에서 오류 error의 종류
		//1. compile-time error
		//		오타등의 잘못된 코드작성이 원인
		//		개발자가 충분히 수습 가능
		//2. runtime - time error
		//		프로그램 실행시 발생하는 오류
		//		잘못된 동작(개발자가 수습 가능)이나 특별한 상황(수습 불가)
				
		//  상황 1) 두개의 정수를 입력받아
		// 두 수를 나눈 결과를 출력하는 프로그램을 작성
		// 예외처리 하지 않았을 경우
		
		int num1=0, num2=0, result=0;
		Scanner sc= new Scanner(System.in);
//		System.out.println("두 수는? ");
//		try{
//			num1 = sc.nextInt();
//			num2 = sc.nextInt();
//			result = num1 / num2;
//			System.out.println("두수를 나눈 결과는  "+result);
//		}catch(Exception ex){
//			System.out.println("입력 값은 숫자이고 0이상입니다. ");
//		}
		//오류가 발생할 조건을 if문으로 막음
		//오류발생 조건이 많을 경우다중 if문으로 해결
		
		//자바에서는 오류 발생시 예외exception처리
		//매커니즘을 사용함
		//오류가 발생할 가능성이 있는 코드를
		//try - catch 블럭으로 지정함
		//catch에서 오류에 대한 조치사항을 작성
		
		System.out.println("두 수는? ");
		try {
			num1 = sc.nextInt();
			num2 = sc.nextInt();
		}catch (Exception ex) {
			throw new Exception("힙합은 사랑입니다");
		}
		
		try {
			result = num1 / num2;
			System.out.println(
					"두수를 나눈 결과는  "+result);
		}catch (Exception ex){
			throw new Exception(
					"잘 못된 연산을 시도했습니다.");
		}
		//값 입력시 발생하는 예외를 
		//각각의 catch 블럭에서 처리하지 않고
		//한곳에 모아서 처리하기 위해
		//throw 라는 명령으로 예외를
		//다른 곳으로 넘김
		
		
		}
		
}	


